package com.dyz.leetcode._03_mathematics;

import com.dyz.leetcode.ListNode;

public class _2_addTwoNumbers {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode dummy = new ListNode(0);
        ListNode curr  = dummy;
        int carry = 0;
        while(l1!=null || l2!=null){
            int x = l1==null?0:l1.val;
            int y = l2==null?0:l2.val;

            int total = x+y+carry;
            curr.next = new ListNode(total%10);
            curr = curr.next;
            carry = total/10;
            if(l1!=null){l1 = l1.next;}
            if(l2!=null){l2 = l2.next;}
        }
        if (carry!=0) {curr.next = new ListNode(carry);}
        return dummy.next;
    }
}
